#pragma once


#include <tchar.h>
#include <WinSock2.h>
#include <ws2bth.h> // include after winsock2.h
#include <iostream>
#include <string>
#include <memory>
#include <vector>
#include <initguid.h>
#include <assert.h>
#include <SetupAPI.h>
#include <strsafe.h>
#include <bthsdpdef.h> // include before bluetoothapis.h
#include <BluetoothAPIs.h>
#include <stdint.h>
#include <stdio.h>
#include <Rpcdce.h>


typedef std::basic_string<TCHAR> tstring;

// The Globally Unique Identifier acts somewhat like a TCP Port. It identifies the Service this device provides.
// To establish a BluetoothConnection, the server and the clients GUID must match.
DEFINE_GUID( MYGUID, 0x8ce255c0, 0x200a,0x11e0, 0xac, 0x64, 0x08, 0x00, 0x20, 0x0c, 0x9a, 0x66);

DEFINE_GUID( TESTGUID, 0x0000112F, 0x0000,0x1000, 0x80, 0x00, 0x00, 0x80, 0x5F, 0x9B, 0x34, 0xFB);



#ifdef UNICODE
	#define to_tstring(x) to_wstring(x)
	#define tcerr wcerr
	#define tcout wcout
	#define tcin wcin
	#define RPC_TSTR RPC_WSTR
#else
	#define to_tstring(x) to_string(x)
	#define tcerr cerr
	#define tcout cout
	#define tcin cin
	#define RPC_TSTR RPC_CSTR
#endif


